home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #2 / Monster Media No. 2 (Monster Media)(1994).ISO / pcboard / edsb121b.zip / EDSFILE.004 (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-05-01  |  28KB  |  1,507 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  TBOOLEAN003(1)
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Boolean  BOOLEAN007
  26.     Boolean  BOOLEAN008
  27.     Date     DATE001
  28.     Integer  INTEGER001
  29.     Integer  INTEGER002
  30.     Integer  INTEGER003
  31.     Integer  INTEGER004
  32.     Integer  INTEGER005
  33.     Integer  INTEGER006
  34.     Integer  INTEGER007
  35.     Integer  INTEGER008
  36.     Real     REAL001
  37.     Real     REAL002
  38.     Real     REAL003
  39.     String   STRING001
  40.     String   STRING002
  41.     String   STRING003
  42.     String   STRING004
  43.     String   STRING005
  44.     String   STRING006
  45.     String   STRING007
  46.     String   STRING008
  47.     String   STRING009
  48.     String   STRING010
  49.     String   STRING011
  50.     String   STRING012
  51.     Time     TIME001
  52.     Byte     BYTE001
  53.     Byte     BYTE002
  54.     Byte     BYTE003
  55.     Byte     BYTE004
  56.     Byte     BYTE005
  57.     Byte     BYTE006
  58.  
  59. ;------------------------------------------------------------------------------
  60.  
  61.     GetToken STRING003
  62.     Select Case (STRING003)
  63.         Case "1"
  64.             Gosub LABEL016
  65.             Goto LABEL041
  66.         Case "2"
  67.             Gosub LABEL024
  68.             Goto LABEL041
  69.         Case "3"
  70.             STRING003 = ""
  71.             GetToken STRING003
  72.             If (STRING003 == "A") Then
  73.                 BOOLEAN006 = 1
  74.                 Gosub LABEL007
  75.                 Goto LABEL041
  76.             Else
  77.                 BOOLEAN006 = 0
  78.                 Gosub LABEL007
  79.                 Goto LABEL041
  80.             Endif
  81.         Case "4"
  82.             PrintLn 
  83.             PrintLn "@X0FTrash file converting is no longer supported..."
  84.             PrintLn 
  85.             Wait
  86.             Goto LABEL041
  87.         Case "5"
  88.             Gosub LABEL033
  89.             Goto LABEL041
  90.         Case "6"
  91.             Gosub LABEL003
  92.             Goto LABEL041
  93.         Case "7"
  94.             Gosub LABEL001
  95.             Goto LABEL041
  96.         Case Else
  97.             PrintLn 
  98.             PrintLn "@X0CEUTMOD2 : FATAL ERROR -- INVALID COMMAND PARAMETERS"
  99.             PrintLn 
  100.             PrintLn "@X0AEUTMOD2.PPE can only be ran from within EDSUTIL.PPE!"
  101.             PrintLn 
  102.             Delay 9
  103.             Goto LABEL041
  104.     End Select
  105.     :LABEL001
  106.     Gosub LABEL035
  107.     PrintLn 
  108.     STRING002 = PPEPath() + "TRASH.XPT"
  109.     STRING008 = PPEPath() + "EXPORT.RPT"
  110.     InputStr "Path & Filename to export to", STRING002, 15, 45, Mask_Path() + Mask_File(), 2 + 4 + 256
  111.     STRING002 = Strip(Upper(STRING002), " ")
  112.     If (STRING002 == "") Goto LABEL041
  113.     InputStr "Path & Filename for report file", STRING008, 15, 45, Mask_Path() + Mask_File(), 2 + 4 + 256
  114.     STRING008 = Strip(Upper(STRING008), " ")
  115.     If (STRING008 == "") Goto LABEL041
  116.     STRING001 = Trim(Upper(STRING001), " ")
  117.     If (Exist(STRING001)) Goto LABEL002
  118.     PrintLn 
  119.     PrintLn "@X0C" + STRING001 + " does not exist!"
  120.     PrintLn 
  121.     Delay 4
  122.     Goto LABEL041
  123.     :LABEL002
  124.     INTEGER001 = FileInf(STRING001, 4)
  125.     INTEGER002 = (INTEGER001 - 37) / 59
  126.     If (Exist(STRING002)) Then
  127.         FAppend 1, STRING002, 1, 2
  128.         If (Ferr(1)) Then
  129.             BOOLEAN001 = 1
  130.         Else
  131.             BOOLEAN001 = 0
  132.         Endif
  133.         If (BOOLEAN001) Then
  134.             PrintLn 
  135.             PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  136.             FClose 1
  137.             Return
  138.         Endif
  139.     Else
  140.         FCreate 1, STRING002, 1, 2
  141.         If (Ferr(1)) Then
  142.             BOOLEAN001 = 1
  143.         Else
  144.             BOOLEAN001 = 0
  145.         Endif
  146.         If (BOOLEAN001) Then
  147.             PrintLn 
  148.             PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  149.             FClose 1
  150.             Return
  151.         Endif
  152.     Endif
  153.     FOpen 2, STRING001, 0, 0
  154.     If (Ferr(2)) Then
  155.         BOOLEAN001 = 1
  156.     Else
  157.         BOOLEAN001 = 0
  158.     Endif
  159.     If (BOOLEAN001) Then
  160.         PrintLn 
  161.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  162.         FClose 1
  163.         FClose 2
  164.         Return
  165.     Endif
  166.     If (Exist(STRING008)) Then
  167.         FAppend 3, STRING008, 1, 2
  168.         If (Ferr(3)) Then
  169.             BOOLEAN001 = 1
  170.         Else
  171.             BOOLEAN001 = 0
  172.         Endif
  173.         If (BOOLEAN001) Then
  174.             PrintLn 
  175.             PrintLn "@X0CSorry, the @X0F" + STRING008 + " @X0Cfile is currently inaccessible..."
  176.             FClose 1
  177.             FClose 2
  178.             FClose 3
  179.             Return
  180.         Endif
  181.     Else
  182.         FCreate 3, STRING008, 1, 2
  183.         If (Ferr(3)) Then
  184.             BOOLEAN001 = 1
  185.         Else
  186.             BOOLEAN001 = 0
  187.         Endif
  188.         If (BOOLEAN001) Then
  189.             PrintLn 
  190.             PrintLn "@X0CSorry, the @X0F" + STRING008 + " @X0Cfile is currently inaccessible..."
  191.             FClose 1
  192.             FClose 2
  193.             FClose 3
  194.             Return
  195.         Endif
  196.         FPutLn 3, "EDSBack v1.21b Already Used # Exportation Report"
  197.         FPutLn 3, "Report generated at " + String(Time()) + " on " + String(Date())
  198.         FPutLn 3, "----------------------------------------------------------------------"
  199.         FPutLn 3
  200.     Endif
  201.     INTEGER003 = 1
  202.     Cls
  203.     PrintLn 
  204.     PrintLn Space(15) + "@X0A(@X0FAlready Used # File Exportation Procedure@X0A)"
  205.     PrintLn 
  206.     PrintLn 
  207.     PrintLn "@X0BFrom   :@X0E " + STRING001
  208.     PrintLn "@X0BTo     :@X0E " + STRING002
  209.     PrintLn "@X0BReport :@X0E " + STRING008
  210.     PrintLn 
  211.     Print "@X0CPlease wait, now exporting...@X0F    "
  212.     FSeek 2, 37, 0
  213.     While (INTEGER003 <= INTEGER002) Do
  214.         FSeek 2, 1, 1
  215.         FRead 2, TBOOLEAN003(1), 1
  216.         FRead 2, STRING009, 3
  217.         STRING009 = Strip(STRING009, " ")
  218.         FRead 2, STRING011, 4
  219.         STRING011 = Strip(STRING011, " ")
  220.         FRead 2, STRING010, 8
  221.         STRING010 = Strip(STRING010, " ")
  222.         FSeek 2, 42, 1
  223.         If (TBOOLEAN003(1)) Then
  224.             FPutLn 3, "--------------------------------------------------------------------------"
  225.             FPutLn 3, "Record #" + String(INTEGER003) + " not exported because it is an international number..."
  226.             FPutLn 3, "CountryCode = " + STRING009
  227.             FPutLn 3, "CityCode    = " + STRING011
  228.             FPutLn 3, "Number      = " + STRING010
  229.         Else
  230.             FPutLn 1, STRING009 + "-" + Left(STRING011 + Space(3), 3) + "-" + Left(STRING010 + Space(4), 4)
  231.         Endif
  232.         Gosub LABEL039
  233.         Inc INTEGER003
  234.     EndWhile
  235.     FClose 1
  236.     FClose 2
  237.     FClose 3
  238.     PrintLn 
  239.     PrintLn "@X0BExporting process completed!"
  240.     Log "Already Used # file exported...", 0
  241.     Delay 4
  242.     Return
  243.     :LABEL003
  244.     Gosub LABEL035
  245.     PrintLn 
  246.     STRING008 = ""
  247.     STRING002 = ""
  248.     InputStr "Path & Filename of file to import", STRING002, 15, 45, Mask_Path() + Mask_File(), 2 + 4
  249.     STRING002 = Strip(Upper(STRING002), " ")
  250.     If (STRING002 == "") Goto LABEL041
  251.     STRING001 = Upper(STRING001)
  252.     Newline
  253.     InputStr "Name to place in file for all imported numbers", STRING008, 15, 25, Mask_Ascii(), 2 + 4
  254.     Newline
  255.     STRING008 = Trim(Upper(STRING008), " ")
  256.     PrintLn 
  257.     If (Exist(STRING002)) Goto LABEL004
  258.     PrintLn "@X0C" + STRING002 + " does not exist!"
  259.     PrintLn 
  260.     Delay 9
  261.     Return
  262.     :LABEL004
  263.     If (Exist(STRING001)) Then
  264.         FOpen 1, STRING001, 1, 2
  265.         If (Ferr(1)) Then
  266.             BOOLEAN001 = 1
  267.         Else
  268.             BOOLEAN001 = 0
  269.         Endif
  270.         If (BOOLEAN001) Then
  271.             PrintLn 
  272.             PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  273.             FClose 1
  274.             Return
  275.         Endif
  276.         FSeek 1, 0, 2
  277.     Else
  278.         FCreate 1, STRING001, 1, 2
  279.         If (Ferr(1)) Then
  280.             BOOLEAN001 = 1
  281.         Else
  282.             BOOLEAN001 = 0
  283.         Endif
  284.         If (BOOLEAN001) Then
  285.             PrintLn 
  286.             PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  287.             FClose 1
  288.             Return
  289.         Endif
  290.         FWrite 1, " EDSBack v1.21 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  291.     Endif
  292.     FOpen 2, STRING002, 0, 0
  293.     If (Ferr(2)) Then
  294.         BOOLEAN001 = 1
  295.     Else
  296.         BOOLEAN001 = 0
  297.     Endif
  298.     If (BOOLEAN001) Then
  299.         PrintLn 
  300.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  301.         FClose 1
  302.         FClose 2
  303.         Return
  304.     Endif
  305.     Cls
  306.     PrintLn 
  307.     PrintLn Space(15) + "@X0A(@X0FAlready Used # Trash File Importation Procedure@X0A)"
  308.     PrintLn 
  309.     PrintLn "@X0EFrom         : @X0F" + STRING002
  310.     PrintLn "@X0ETo           : @X0F" + STRING001
  311.     PrintLn "@X0EDefault Name : @X0F" + STRING008
  312.     PrintLn 
  313.     PrintLn 
  314.     Print "@X0CImporting record #@X0F1"
  315.     INTEGER003 = 1
  316.     INTEGER005 = 1
  317.     :LABEL005
  318.     If (Ferr(2)) Goto LABEL006
  319.     FGet 2, STRING005
  320.     Backup Len(String(INTEGER005))
  321.     Print String(INTEGER003)
  322.     STRING005 = Strip(Strip(Strip(Strip(Strip(STRING005, " "), ")"), "("), "-"), ".")
  323.     If (STRING005 <> "") Then
  324.         FWrite 1, 0, 1
  325.         FWrite 1, 0, 1
  326.         FWrite 1, Mid(STRING005, 1, 3), 3
  327.         FWrite 1, Mid(STRING005, 4, 3), 4
  328.         FWrite 1, Mid(STRING005, 7, 4), 8
  329.         FWrite 1, STRING008, 25
  330.         FWrite 1, Date(), 2
  331.         FWrite 1, Time(), 4
  332.         FWrite 1, Space(11), 11
  333.         INTEGER005 = INTEGER003
  334.         Inc INTEGER003
  335.     Endif
  336.     Goto LABEL005
  337.     :LABEL006
  338.     FClose 1
  339.     FClose 2
  340.     PrintLn 
  341.     PrintLn "@X0B" + STRING002 + " successfully imported..."
  342.     Log STRING002 + " imported into Used # file...", 0
  343.     PrintLn 
  344.     Gosub LABEL033
  345.     Return
  346.     :LABEL007
  347.     Gosub LABEL035
  348.     BOOLEAN002 = 0
  349.     BYTE002 = 20
  350.     BYTE003 = 110
  351.     STRING007 = Trim(ReadLine(PCBDat(), 29), " ")
  352.     :LABEL008
  353.     If (BOOLEAN002) Goto LABEL009
  354.     PrintLn 
  355.     PrintLn "@X0FEDSUtil Trash File Building Facility"
  356.     PrintLn "@X0CNOTE : NUMBERS MUST HAVE 10 CHARACTERS TO BE PROCESSED!"
  357.     PrintLn "       INTERNATIONAL NUMBERS OR INCOMPLETE NUMBERS WILL NOT BE PROCESSED..."
  358.     PrintLn "       See BUILD.RPT after building process for records"
  359.     PrintLn "       to manually update."
  360.     PrintLn 
  361.     PrintLn "          @X0F(@X09L@X0F)@X0Bowest sec. level to process  : @X0E" + String(BYTE002)
  362.     PrintLn "          @X0F(@X09H@X0F)@X0Bighest sec. level to process : @X0E" + String(BYTE003)
  363.     PrintLn "          @X0F(@X09U@X0F)@X0Bsers file path & filename    : @X0E(See Below)"
  364.     PrintLn "          " + STRING007
  365.     PrintLn 
  366.     PrintLn "          @X0F(@X09B@X0F)@X0Build trash file"
  367.     PrintLn "          @X0F(@X09Q@X0F)@X0Buit to EDSUtil main"
  368.     PrintLn 
  369.     STRING004 = ""
  370.     InputStr "Trash File Building Facility Command", STRING004, 10, 1, "LlHhBbQqUu", 2 + 4
  371.     Newline
  372.     STRING004 = Upper(STRING004)
  373.     Select Case (STRING004)
  374.         Case "Q"
  375.             Goto LABEL041
  376.         Case "B"
  377.             BOOLEAN002 = 1
  378.         Case "L"
  379.             InputInt "Lowest Security level of users (phone numbers) to place in trash file", BYTE002, 10
  380.         Case "H"
  381.             InputInt "Highest Security level of users (phone numbers) to place in trash file", BYTE003, 10
  382.         Case "U"
  383.             PrintLn "@X0AEnter path & filename to your USERS file below..."
  384.             InputStr "", STRING007, 12, 75, Mask_Path() + Mask_File(), 2 + 4
  385.             Newline
  386.     End Select
  387.     Goto LABEL008
  388.     :LABEL009
  389.     Cls
  390.     PrintLn 
  391.     PrintLn Space(11) + "@X0F(@X0AEDSBack Already Used Number Trash File Building Process@X0F)"
  392.     PrintLn 
  393.     PrintLn 
  394.     INTEGER001 = FileInf(STRING007, 4)
  395.     INTEGER002 = INTEGER001 / 400
  396.     INTEGER003 = 1
  397.     PrintLn "@X0ABacking up trash file..."
  398.     If (Exist(PPEPath() + "TRASH.BAK")) Delete PPEPath() + "TRASH.BAK"
  399.     If (BOOLEAN006) Goto LABEL010
  400.     If (Exist(STRING001)) Rename STRING001, PPEPath() + "TRASH.BAK"
  401.     Goto LABEL011
  402.     :LABEL010
  403.     If (Exist(STRING001)) Copy STRING001, PPEPath() + "TRASH.BAK"
  404.     :LABEL011
  405.     PrintLn "@X0AOpening files..."
  406.     KbdChkOff
  407.     FCreate 2, PPEPath() + "BUILD.RPT", 1, 2
  408.     If (Ferr(2)) Then
  409.         BOOLEAN001 = 1
  410.     Else
  411.         BOOLEAN001 = 0
  412.     Endif
  413.     If (BOOLEAN001) Then
  414.         PrintLn 
  415.         PrintLn "@X0CSorry, the @X0FBUILD.RPT @X0Cfile is currently inaccessible..."
  416.         PrintLn "@X0AA report will not be generated...  @X0CResuming..."
  417.         FClose 2
  418.     Else
  419.         FPutLn 2, "EDSBack v1.21b Trash File Building Report"
  420.         FPutLn 2, "Generated on file " + STRING007 + " on " + String(Date()) + " at " + String(Time())
  421.         FPutLn 2, "================================================================================"
  422.         FPutLn 2
  423.     Endif
  424.     BOOLEAN001 = 0
  425.     If (BOOLEAN006) Goto LABEL012
  426.     FCreate 1, STRING001, 1, 2
  427.     If (Ferr(1)) Then
  428.         BOOLEAN001 = 1
  429.     Else
  430.         BOOLEAN001 = 0
  431.     Endif
  432.     If (BOOLEAN001) Then
  433.         PrintLn 
  434.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  435.         FClose 1
  436.         Return
  437.     Endif
  438.     FWrite 1, " EDSBack v1.21 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  439.     Goto LABEL013
  440.     :LABEL012
  441.     If (Exist(STRING001)) Then
  442.         FOpen 1, STRING001, 1, 2
  443.         If (Ferr(1)) Then
  444.             BOOLEAN001 = 1
  445.         Else
  446.             BOOLEAN001 = 0
  447.         Endif
  448.         If (BOOLEAN001) Then
  449.             PrintLn 
  450.             PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  451.             FClose 1
  452.             Return
  453.         Endif
  454.         FSeek 1, 0, 2
  455.     Else
  456.         FCreate 1, STRING001, 1, 2
  457.         If (Ferr(1)) Then
  458.             BOOLEAN001 = 1
  459.         Else
  460.             BOOLEAN001 = 0
  461.         Endif
  462.         If (BOOLEAN001) Then
  463.             PrintLn 
  464.             PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  465.             FClose 1
  466.             Return
  467.         Endif
  468.         FWrite 1, " EDSBack v1.21 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  469.     Endif
  470.     :LABEL013
  471.     PrintLn 
  472.     PrintLn "@X0AReading user records & building trashfile..."
  473.     PrintLn "@X0F     File Size = " + String(INTEGER001) + " bytes  Number of Records = " + String(INTEGER002)
  474.     PrintLn 
  475.     If (OnLocal()) Then
  476.         PrintLn 
  477.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  478.         BYTE001 = GetY()
  479.     Else
  480.         Print "Fetching records...     "
  481.     Endif
  482.     INTEGER001 = 1
  483.     While (INTEGER003 <= INTEGER002) Do
  484.         GetAltUser INTEGER003
  485.         If ((U_Sec >= BYTE002) && (U_Sec <= BYTE003)) Then
  486.             BOOLEAN005 = 1
  487.         Else
  488.             BOOLEAN005 = 0
  489.         Endif
  490.         If (BOOLEAN005) Then
  491.             STRING008 = U_BDPhone
  492.             STRING008 = Strip(Strip(Strip(Strip(Strip(Strip(STRING008, " "), "-"), ")"), "("), "."), ",")
  493.             FPutLn 2, "--------------------------------------------------"
  494.             FPutLn 2, U_Name() + "   Record #" + String(INTEGER003)
  495.             If (Len(STRING008) == 10) Then
  496.                 STRING009 = Mid(STRING008, 1, 3)
  497.                 STRING011 = Mid(STRING008, 4, 3)
  498.                 STRING010 = Mid(STRING008, 7, 4)
  499.                 FWrite 1, 0, 1
  500.                 FWrite 1, 0, 1
  501.                 FWrite 1, STRING009, 3
  502.                 FWrite 1, STRING011, 4
  503.                 FWrite 1, STRING010, 8
  504.                 FWrite 1, U_Name(), 25
  505.                 FWrite 1, Date(), 2
  506.                 FWrite 1, Time(), 4
  507.                 FWrite 1, Space(11), 11
  508.                 FPutLn 2, "USA DATA number detected...  Added to trash file..."
  509.                 Goto LABEL014
  510.             Endif
  511.             FPutLn 2, "Invalid DATA number format...  Please add manually..."
  512.             FPutLn 2, "DATA # = " + U_BDPhone
  513.             :LABEL014
  514.             STRING008 = U_HVPhone
  515.             STRING008 = Strip(Strip(Strip(Strip(Strip(Strip(STRING008, " "), "-"), ")"), "("), "."), ",")
  516.             If (Len(STRING008) == 10) Then
  517.                 STRING009 = Mid(STRING008, 1, 3)
  518.                 STRING011 = Mid(STRING008, 4, 3)
  519.                 STRING010 = Mid(STRING008, 7, 4)
  520.                 FWrite 1, 0, 1
  521.                 FWrite 1, 0, 1
  522.                 FWrite 1, STRING009, 3
  523.                 FWrite 1, STRING011, 4
  524.                 FWrite 1, STRING010, 8
  525.                 FWrite 1, U_Name(), 25
  526.                 FWrite 1, Date(), 2
  527.                 FWrite 1, Time(), 4
  528.                 FWrite 1, Space(11), 11
  529.                 FPutLn 2, "USA HOME number detected...  Added to trash file..."
  530.                 Goto LABEL015
  531.             Endif
  532.             FPutLn 2, "Invalid HOME number format...  Please add manually..."
  533.             FPutLn 2, "HOME # = " + U_HVPhone
  534.         Endif
  535.         :LABEL015
  536.         If (OnLocal()) Then
  537.             Gosub LABEL038
  538.         Else
  539.             Gosub LABEL039
  540.         Endif
  541.         INTEGER001 = INTEGER003
  542.         Inc INTEGER003
  543.     EndWhile
  544.     PrintLn 
  545.     PrintLn "@X0FTrash file building finished!  Closing files..."
  546.     FClose 1
  547.     FClose 2
  548.     Gosub LABEL033
  549.     Delay 4
  550.     KbdChkOn
  551.     Return
  552.     :LABEL016
  553.     PrintLn 
  554.     PrintLn "@X07EDSUtil provides the ability to check the user's in your EDSBack trash "
  555.     PrintLn "file against those in your USERS file.  If a user in your EDSBack trash file"
  556.     PrintLn "is not found in your PCBoard USERS file, he/she will be flagged for deletion"
  557.     PrintLn "from the EDSBack trash file and packed out during the packing process.  You"
  558.     PrintLn "have the choice whether or not you want EDSBack to do this."
  559.     PrintLn 
  560.     STRING005 = YesChar()
  561.     InputYN "Would you like to purge inactive users from the trash file", STRING005, 10
  562.     If (Upper(STRING005) == YesChar()) Then
  563.         BOOLEAN007 = 1
  564.     Else
  565.         BOOLEAN007 = 0
  566.     Endif
  567.     Gosub LABEL035
  568.     If (Exist(STRING001)) Goto LABEL017
  569.     PrintLn 
  570.     PrintLn "@X0C" + STRING001 + " does not exist!"
  571.     Delay 9
  572.     Return
  573.     :LABEL017
  574.     INTEGER001 = FileInf(STRING001, 4)
  575.     INTEGER002 = (INTEGER001 - 37) / 59
  576.     If (INTEGER002 <= 1) Then
  577.         PrintLn 
  578.         PrintLn "@X0CTHERE MUST BE AT LEAST ONE RECORD PRESENT IN THE TRASH CAN FILE!"
  579.         PrintLn 
  580.         Delay 18
  581.         Return
  582.     Endif
  583.     KbdChkOff
  584.     Cls
  585.     PrintLn 
  586.     PrintLn Space(11) + "@X0F(@X0AEDSBack Already Used Number Trash File Packing Process@X0F)"
  587.     If (BOOLEAN007) Gosub LABEL021
  588.     Rename STRING001, PPEPath() + String(PcbNode()) + "ts.$$$"
  589.     FCreate 1, STRING001, 1, 2
  590.     If (Ferr(1)) Then
  591.         BOOLEAN001 = 1
  592.     Else
  593.         BOOLEAN001 = 0
  594.     Endif
  595.     If (BOOLEAN001) Then
  596.         PrintLn 
  597.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  598.         FClose 1
  599.         Return
  600.     Endif
  601.     FOpen 2, PPEPath() + String(PcbNode()) + "ts.$$$", 0, 3
  602.     If (Ferr(2)) Then
  603.         BOOLEAN001 = 1
  604.     Else
  605.         BOOLEAN001 = 0
  606.     Endif
  607.     If (BOOLEAN001) Then
  608.         PrintLn 
  609.         PrintLn "@X0CSorry, the @X0F" + String(PcbNode()) + "ts.$$$ @X0Cfile is currently inaccessible..."
  610.         FClose 2
  611.         FClose 1
  612.         PrintLn 
  613.         PrintLn "@X0ADeleting & renaming temporary files..."
  614.         Delete STRING001
  615.         Rename PPEPath() + String(PcbNode()) + "ts.$$$", STRING001
  616.         Return
  617.     Endif
  618.     BOOLEAN002 = 0
  619.     FSeek 1, 0, 0
  620.     FWrite 1, " EDSBack v1.21 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  621.     PrintLn 
  622.     If (BOOLEAN007) Goto LABEL018
  623.     PrintLn 
  624.     PrintLn "@X0F   File Size = " + String(INTEGER001) + " bytes   Number of Records = " + String(INTEGER002)
  625.     PrintLn 
  626.     :LABEL018
  627.     Print "@X0FPacking trash can file...     "
  628.     If (OnLocal()) Then
  629.         PrintLn 
  630.         PrintLn 
  631.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  632.         BYTE001 = GetY()
  633.     Endif
  634.     INTEGER003 = 1
  635.     FSeek 2, 37, 0
  636.     While (INTEGER003 <= INTEGER002) Do
  637.         BOOLEAN002 = 0
  638.         TBOOLEAN003(0) = 0
  639.         TBOOLEAN003(1) = 0
  640.         STRING009 = ""
  641.         STRING011 = ""
  642.         STRING010 = ""
  643.         STRING002 = ""
  644.         DATE001 = 0
  645.         TIME001 = 0
  646.         FRead 2, TBOOLEAN003(0), 1
  647.         If (TBOOLEAN003(0)) Then
  648.             BOOLEAN002 = 1
  649.         Else
  650.             BOOLEAN002 = 0
  651.         Endif
  652.         If (BOOLEAN002) Goto LABEL019
  653.         FWrite 1, TBOOLEAN003(0), 1
  654.         FRead 2, TBOOLEAN003(1), 1
  655.         FWrite 1, TBOOLEAN003(1), 1
  656.         FRead 2, STRING009, 3
  657.         FWrite 1, STRING009, 3
  658.         FRead 2, STRING011, 4
  659.         FWrite 1, STRING011, 4
  660.         FRead 2, STRING010, 8
  661.         FWrite 1, STRING010, 8
  662.         FRead 2, STRING002, 25
  663.         FWrite 1, STRING002, 25
  664.         FRead 2, DATE001, 2
  665.         FWrite 1, DATE001, 2
  666.         FRead 2, TIME001, 4
  667.         FWrite 1, TIME001, 4
  668.         FSeek 2, 11, 1
  669.         FWrite 1, Space(11), 11
  670.         Goto LABEL020
  671.         :LABEL019
  672.         FSeek 2, 58, 1
  673.         :LABEL020
  674.         If (OnLocal()) Then
  675.             Gosub LABEL038
  676.         Else
  677.             Gosub LABEL039
  678.         Endif
  679.         Inc INTEGER003
  680.     EndWhile
  681.     Color 7
  682.     FClose 1
  683.     FClose 2
  684.     PrintLn 
  685.     PrintLn 
  686.     PrintLn "@X0EChecking files..."
  687.     Delete PPEPath() + String(PcbNode()) + "ts.$$$"
  688.     INTEGER001 = FileInf(STRING001, 4)
  689.     INTEGER002 = (INTEGER001 - 37) / 59
  690.     If (INTEGER002 < 1) Then
  691.         PrintLn 
  692.         PrintLn "@X0C0 byte file!  Recreating with a dummy record..."
  693.         FCreate 1, STRING001, 1, 2
  694.         FWrite 1, " EDSBack v1.21 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  695.         FWrite 1, 0, 1
  696.         FWrite 1, 0, 1
  697.         FWrite 1, "000", 3
  698.         FWrite 1, "000", 3
  699.         FWrite 1, "0000", 4
  700.         FWrite 1, "JOHN DOE", 25
  701.         FWrite 1, Date(), 2
  702.         FWrite 1, Time(), 4
  703.         FWrite 1, Space(11), 11
  704.         FClose 1
  705.         PrintLn "@X0ANew trash file successfully created..."
  706.     Endif
  707.     Gosub LABEL033
  708.     Log "EDSBack Trash can file successfully packed!", 0
  709.     KbdChkOn
  710.     Return
  711.     :LABEL021
  712.     FCreate 4, PPEPath() + "COMPARE.RPT", 1, 2
  713.     FPutLn 4, "EDSBack v1.21b  USERS file vs. Trash file comparing report"
  714.     FPutLn 4, "Compiled on " + String(Date()) + " at " + String(Time())
  715.     FPutLn 4, "--------------------------------------------------------------------"
  716.     FPutLn 4
  717.     INTEGER008 = 0
  718.     STRING007 = ReadLine(PCBDat(), 28)
  719.     FClose -1
  720.     Rename STRING001, PPEPath() + String(PcbNode()) + "tsc.$$$"
  721.     FCreate 1, STRING001, 1, 2
  722.     If (Ferr(1)) Then
  723.         BOOLEAN001 = 1
  724.     Else
  725.         BOOLEAN001 = 0
  726.     Endif
  727.     If (BOOLEAN001) Then
  728.         PrintLn 
  729.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  730.         FClose 1
  731.         FClose 4
  732.         Return
  733.     Endif
  734.     FOpen 2, PPEPath() + String(PcbNode()) + "tsc.$$$", 0, 3
  735.     If (Ferr(2)) Then
  736.         BOOLEAN001 = 1
  737.     Else
  738.         BOOLEAN001 = 0
  739.     Endif
  740.     If (BOOLEAN001) Then
  741.         PrintLn 
  742.         PrintLn "@X0CSorry, the @X0F" + String(PcbNode()) + "tsc.$$$ @X0Cfile is currently inaccessible..."
  743.         FClose 4
  744.         FClose 2
  745.         FClose 1
  746.         PrintLn 
  747.         PrintLn "@X0ADeleting & renaming temporary files..."
  748.         Delete STRING001
  749.         Rename PPEPath() + String(PcbNode()) + "tsc.$$$", STRING001
  750.         Return
  751.     Endif
  752.     BOOLEAN002 = 0
  753.     FSeek 1, 0, 0
  754.     FWrite 1, " EDSBack v1.21 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  755.     PrintLn 
  756.     PrintLn "@X0F   File Size = " + String(INTEGER001) + " bytes   Number of Records = " + String(INTEGER002)
  757.     PrintLn 
  758.     Print "@X0FComparing trash can file against USERS file...     "
  759.     If (OnLocal()) Then
  760.         PrintLn 
  761.         PrintLn 
  762.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  763.         BYTE001 = GetY()
  764.     Endif
  765.     INTEGER003 = 1
  766.     FSeek 2, 37, 0
  767.     FDefOut 1
  768.     While (INTEGER003 <= INTEGER002) Do
  769.         BOOLEAN002 = 0
  770.         FRead 2, TBOOLEAN003(0), 1
  771.         FRead 2, TBOOLEAN003(1), 1
  772.         FRead 2, STRING009, 3
  773.         FRead 2, STRING011, 4
  774.         FRead 2, STRING010, 8
  775.         FRead 2, STRING002, 25
  776.         BOOLEAN008 = 0
  777.         Gosub LABEL022
  778.         If (BOOLEAN008) Then
  779.             FRead 2, DATE001, 2
  780.             FRead 2, TIME001, 4
  781.             FSeek 2, 11, 1
  782.             FDWrite TBOOLEAN003(0), 1
  783.             FDWrite TBOOLEAN003(1), 1
  784.             FDWrite STRING009, 3
  785.             FDWrite STRING011, 4
  786.             FDWrite STRING010, 8
  787.             FDWrite STRING002, 25
  788.             FDWrite DATE001, 2
  789.             FDWrite TIME001, 4
  790.             FDWrite Space(11), 11
  791.         Else
  792.             FSeek 2, 17, 1
  793.         Endif
  794.         If (OnLocal()) Then
  795.             Gosub LABEL038
  796.         Else
  797.             Gosub LABEL039
  798.         Endif
  799.         Inc INTEGER003
  800.     EndWhile
  801.     Color 7
  802.     FClose 1
  803.     FClose 2
  804.     FClose 4
  805.     PrintLn 
  806.     PrintLn 
  807.     PrintLn "@X0EChecking files..."
  808.     Delete PPEPath() + String(PcbNode()) + "tsc.$$$"
  809.     INTEGER001 = FileInf(STRING001, 4)
  810.     INTEGER002 = (INTEGER001 - 37) / 59
  811.     If (INTEGER002 < 1) Then
  812.         PrintLn 
  813.         PrintLn "@X0C0 byte file!  Recreating with a dummy record..."
  814.         FCreate 1, STRING001, 1, 2
  815.         FWrite 1, " EDSBack v1.21 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  816.         FWrite 1, 0, 1
  817.         FWrite 1, 0, 1
  818.         FWrite 1, "000", 3
  819.         FWrite 1, "000", 3
  820.         FWrite 1, "0000", 4
  821.         FWrite 1, "JOHN DOE", 25
  822.         FWrite 1, Date(), 2
  823.         FWrite 1, Time(), 4
  824.         FWrite 1, Space(11), 11
  825.         FClose 1
  826.         PrintLn "@X0ANew trash file successfully created..."
  827.     Endif
  828.     PrintLn "@X0F" + String(INTEGER008) + " name(s) was/were removed from the trash file for inactivity!"
  829.     Log String(INTEGER008) + " inactive users removed from EDSBack Trash file", 0
  830.     Return
  831.     :LABEL022
  832.     STRING002 = Trim(Upper(STRING002), " ")
  833.     INTEGER004 = Asc(Mid(STRING002, 1, 1))
  834.     If ((INTEGER004 < 65) || (INTEGER004 > 90)) Then
  835.         INTEGER006 = FileInf(STRING007 + "PCBNDX.A", 4) / 27
  836.         FOpen 3, STRING007 + "PCBNDX.A", 0, 0
  837.     Else
  838.         INTEGER006 = FileInf(STRING007 + "PCBNDX." + Chr(INTEGER004), 4) / 27
  839.         FOpen 3, STRING007 + "PCBNDX." + Chr(INTEGER004), 0, 0
  840.     Endif
  841.     FDefIn 3
  842.     INTEGER007 = 0
  843.     While (INTEGER007 <= INTEGER006) Do
  844.         FSeek 3, 2, 1
  845.         FDRead STRING012, 25
  846.         If (Trim(STRING012, " ") == STRING002) Then
  847.             FClose 3
  848.             BOOLEAN008 = 1
  849.             Break
  850.         Endif
  851.         Inc INTEGER007
  852.     EndWhile
  853.     If (BOOLEAN008) Goto LABEL023
  854.     Inc INTEGER008
  855.     FPutLn 4, STRING002 + " was deleted from the trash file..."
  856.     :LABEL023
  857.     FClose 3
  858.     Return
  859.     :LABEL024
  860.     BOOLEAN002 = 0
  861.     BOOLEAN004 = 1
  862.     Gosub LABEL035
  863.     If (Exist(PPEPath() + "TRASH.IDX")) Goto LABEL025
  864.     Cls
  865.     PrintLn 
  866.     PrintLn Space(29) + "@X0F(@X0ABuilding Index File@X0F)"
  867.     PrintLn 
  868.     Gosub LABEL033
  869.     :LABEL025
  870.     INTEGER001 = FileInf(STRING001, 4)
  871.     If (Exist(STRING001)) Goto LABEL026
  872.     PrintLn 
  873.     PrintLn "@X0CCreating sample " + STRING001
  874.     BOOLEAN001 = 1
  875.     FCreate 1, STRING001, 2, 2
  876.     If (Ferr(1)) Then
  877.         BOOLEAN001 = 1
  878.     Else
  879.         BOOLEAN001 = 0
  880.     Endif
  881.     If (BOOLEAN001) Then
  882.         PrintLn 
  883.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " X0Cfile is currently inaccessible..."
  884.         FClose 1
  885.         Return
  886.     Endif
  887.     FSeek 1, 0, 0
  888.     FWrite 1, " EDSBack v1.21 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  889.     FWrite 1, 0, 1
  890.     FWrite 1, 0, 1
  891.     FWrite 1, "000", 3
  892.     FWrite 1, "000", 4
  893.     FWrite 1, "0000", 8
  894.     FWrite 1, "JOHN DOE", 25
  895.     FWrite 1, Date(), 2
  896.     FWrite 1, Time(), 4
  897.     FWrite 1, Space(11), 11
  898.     INTEGER001 = 96
  899.     Goto LABEL027
  900.     :LABEL026
  901.     BOOLEAN001 = 1
  902.     FOpen 1, STRING001, 2, 2
  903.     If (Ferr(1)) Then
  904.         BOOLEAN001 = 1
  905.     Else
  906.         BOOLEAN001 = 0
  907.     Endif
  908.     If (BOOLEAN001) Then
  909.         PrintLn 
  910.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " X0Cfile is currently inaccessible..."
  911.         FClose 1
  912.         Return
  913.     Endif
  914.     :LABEL027
  915.     FOpen 2, PPEPath() + "TRASH.IDX", 1, 2
  916.     If (Ferr(2)) Then
  917.         BOOLEAN001 = 1
  918.     Else
  919.         BOOLEAN001 = 0
  920.     Endif
  921.     If (BOOLEAN001) Then
  922.         PrintLn 
  923.         PrintLn "@X0CSorry, the @X0F" + PPEPath() + "TRASH.IDX @X0Cfile is currently inaccessible..."
  924.         FClose 1
  925.         FClose 2
  926.         PrintLn 
  927.         Return
  928.     Endif
  929.     INTEGER003 = 1
  930.     STRING003 = ""
  931.     :LABEL028
  932.     If (BOOLEAN002) Goto LABEL030
  933.     If (BOOLEAN004) Then
  934.         FSeek 1, 37 + INTEGER003 * 59 - 59, 0
  935.         FRead 1, TBOOLEAN003(0), 1
  936.         FRead 1, TBOOLEAN003(1), 1
  937.         FRead 1, STRING009, 3
  938.         FRead 1, STRING011, 4
  939.         FRead 1, STRING010, 8
  940.         STRING009 = Strip(STRING009, " ")
  941.         STRING011 = Strip(STRING011, " ")
  942.         STRING010 = Strip(STRING010, " ")
  943.         FRead 1, STRING002, 25
  944.         FRead 1, DATE001, 2
  945.         FRead 1, TIME001, 4
  946.         BOOLEAN004 = 0
  947.     Endif
  948.     PrintLn 
  949.     INTEGER002 = (INTEGER001 - 37) / 59
  950.     PrintLn "    @X0BRecord #@X0E" + String(INTEGER003) + "@X0B of @X0E" + String(INTEGER002)
  951.     Print "    @X0ADeleted : @X0C"
  952.     If (TBOOLEAN003(0)) Then
  953.         PrintLn "Yes"
  954.     Else
  955.         PrintLn "No "
  956.     Endif
  957.     PrintLn 
  958.     PrintLn "    @X0F(@X09N@X0F)@X0Fame : @X0C" + STRING002
  959.     Print "    @X0F(@X09#@X0F)@X0F called : @X0C"
  960.     If (TBOOLEAN003(1)) Then
  961.         Print STRING009 + "-" + STRING011 + "-" + STRING010
  962.     Else
  963.         Print STRING009 + "-" + Mid(STRING011, 1, 3) + "-" + Mid(STRING010, 1, 4)
  964.     Endif
  965.     Print "    @X0F(@X09I@X0F)@X0Fnternational : @X0C"
  966.     If (TBOOLEAN003(1)) Then
  967.         PrintLn "Yes"
  968.     Else
  969.         PrintLn "No "
  970.     Endif
  971.     PrintLn "    @X0F(@X09D@X0F)@X0Fate : @X0C" + String(DATE001)
  972.     PrintLn "    @X0F(@X09T@X0F)@X0Fime : @X0C" + String(TIME001)
  973.     PrintLn 
  974.     PrintLn "    @X0F(@X09+@X0F) @X0BAdvance 1 record  @X0F(@X09-@X0F) @X0BRetard 1 record"
  975.     PrintLn "    @X0F(@X09J@X0F)@X0Bump to record      @X0F(@X09A@X0F)@X0Bdd a record"
  976.     PrintLn "    @X0F(@X09E@X0F)@X0Brase toggle        @X0F(@X09Q@X0F)@X0Buit"
  977.     PrintLn "    @X0F(@X09S@X0F)@X0Bearch for text"
  978.     PrintLn 
  979.     InputStr "(H)elp, Enter command", STRING003, 10, 1, "SsNn#IiTtDdJjAaEeQq+-Hh", 2 + 4
  980.     Newline
  981.     STRING003 = Upper(STRING003)
  982.     Select Case (STRING003)
  983.         Case "Q"
  984.             FClose 1
  985.             BOOLEAN004 = 0
  986.             BOOLEAN002 = 1
  987.         Case "H"
  988.             Print "@PON@"
  989.             DispFile PPEPath() + "EDSNE", 1 + 4
  990.             Print "@POFF@"
  991.             Cls
  992.             BOOLEAN004 = 0
  993.             BOOLEAN002 = 0
  994.         Case "S"
  995.             Gosub LABEL031
  996.             BOOLEAN002 = 0
  997.             BOOLEAN004 = 1
  998.         Case "+"
  999.             If (INTEGER003 >= INTEGER002) Then
  1000.                 INTEGER003 = 1
  1001.             Else
  1002.                 Inc INTEGER003
  1003.             Endif
  1004.             BOOLEAN002 = 0
  1005.             BOOLEAN004 = 1
  1006.         Case "-"
  1007.             If (INTEGER003 <= 1) Then
  1008.                 INTEGER003 = INTEGER002
  1009.             Else
  1010.                 Dec INTEGER003
  1011.             Endif
  1012.             BOOLEAN002 = 0
  1013.             BOOLEAN004 = 1
  1014.         Case "J"
  1015.             INTEGER005 = INTEGER002
  1016.             InputInt "Enter record # to jump to", INTEGER005, 10
  1017.             If (INTEGER005 > INTEGER002) Then
  1018.                 INTEGER003 = INTEGER002
  1019.             ElseIf (INTEGER005 < 1) Then
  1020.                 INTEGER003 = 1
  1021.             Else
  1022.                 INTEGER003 = INTEGER005
  1023.             Endif
  1024.             BOOLEAN002 = 0
  1025.             BOOLEAN004 = 1
  1026.         Case "E"
  1027.             FSeek 1, 37 + INTEGER003 * 59 - 59, 0
  1028.             If (TBOOLEAN003(0)) Then
  1029.                 FWrite 1, 0, 1
  1030.             Else
  1031.                 FWrite 1, 1, 1
  1032.             Endif
  1033.             BOOLEAN002 = 0
  1034.             BOOLEAN004 = 1
  1035.         Case "A"
  1036.             STRING002 = ""
  1037.             InputStr "Enter name", STRING002, 10, 25, Mask_Ascii(), 2 + 4
  1038.             STRING002 = Upper(STRING002)
  1039.             Newline
  1040.             DATE001 = Date()
  1041.             InputDate "Enter date", DATE001, 10
  1042.             Newline
  1043.             TIME001 = Time()
  1044.             InputTime "Enter time", TIME001, 10
  1045.             Newline
  1046.             STRING005 = NoChar()
  1047.             InputYN "International number", STRING005, 10
  1048.             Newline
  1049.             If (Upper(STRING005) == Upper(YesChar())) Then
  1050.                 TBOOLEAN003(1) = 1
  1051.             Else
  1052.                 TBOOLEAN003(1) = 0
  1053.             Endif
  1054.             If (TBOOLEAN003(1)) Then
  1055.                 InputStr "Country Code", STRING009, 9, 3, Mask_Num(), 2 + 4
  1056.                 Newline
  1057.                 InputStr "City Code", STRING011, 9, 4, Mask_Num(), 2 + 4
  1058.                 Newline
  1059.                 InputStr "Number", STRING010, 9, 8, Mask_Num() + "-,() ", 2 + 4
  1060.             Else
  1061.                 InputStr "Area Code", STRING009, 9, 3, Mask_Num(), 2 + 4
  1062.                 Newline
  1063.                 InputStr "Prefix", STRING011, 9, 3, Mask_Num(), 2 + 4
  1064.                 Newline
  1065.                 InputStr "Number", STRING010, 9, 4, Mask_Num(), 2 + 4
  1066.             Endif
  1067.             STRING009 = Strip(STRING009, " ")
  1068.             STRING011 = Strip(STRING011, " ")
  1069.             STRING010 = Strip(Strip(Strip(Strip(Strip(STRING010, " "), "-"), ","), "("), ")")
  1070.             Newline
  1071.             STRING004 = YesChar()
  1072.             InputYN STRING009 + "-" + STRING011 + "-" + STRING010 + "   Is this correct", STRING004, 12
  1073.             If (Upper(STRING004) == Upper(YesChar())) Then
  1074.                 FSeek 1, 0, 2
  1075.                 FSeek 2, 0, 2
  1076.                 FWrite 1, 0, 1
  1077.                 FWrite 1, TBOOLEAN003(1), 1
  1078.                 FWrite 1, STRING009, 3
  1079.                 FWrite 1, STRING011, 4
  1080.                 FWrite 1, STRING010, 8
  1081.                 FWrite 1, STRING002, 25
  1082.                 FWrite 1, DATE001, 2
  1083.                 FWrite 1, TIME001, 4
  1084.                 FWrite 1, Space(11), 11
  1085.                 INTEGER004 = S2I(STRING009, 10) + S2I(STRING011, 10) + S2I(STRING010, 10)
  1086.                 FWrite 2, INTEGER002 + 1, 4
  1087.                 FWrite 2, INTEGER004, 4
  1088.                 INTEGER002 = INTEGER002 + 1
  1089.                 INTEGER001 = INTEGER001 + 59
  1090.                 INTEGER003 = INTEGER002
  1091.             Endif
  1092.             BOOLEAN004 = 1
  1093.             BOOLEAN002 = 0
  1094.         Case "T"
  1095.             InputTime "Enter new time", TIME001, 10
  1096.             FSeek 1, 37 + INTEGER003 * 59 - 15, 0
  1097.             FWrite 1, TIME001, 4
  1098.             BOOLEAN002 = 0
  1099.             BOOLEAN004 = 1
  1100.         Case "D"
  1101.             InputDate "Enter new date", DATE001, 10
  1102.             FSeek 1, 37 + INTEGER003 * 59 - 17, 0
  1103.             FWrite 1, DATE001, 2
  1104.             BOOLEAN002 = 0
  1105.             BOOLEAN004 = 1
  1106.         Case "#"
  1107.             If (TBOOLEAN003(1)) Then
  1108.                 InputStr "Country Code", STRING009, 9, 3, Mask_Num(), 2 + 4
  1109.                 Newline
  1110.                 InputStr "City Code", STRING011, 9, 4, Mask_Num(), 2 + 4
  1111.                 Newline
  1112.                 InputStr "Number", STRING010, 9, 8, Mask_Num() + "-,() ", 2 + 4
  1113.             Else
  1114.                 InputStr "Area Code", STRING009, 9, 3, Mask_Num(), 2 + 4
  1115.                 Newline
  1116.                 InputStr "Prefix", STRING011, 9, 3, Mask_Num(), 2 + 4
  1117.                 Newline
  1118.                 InputStr "Number", STRING010, 9, 4, Mask_Num(), 2 + 4
  1119.             Endif
  1120.             STRING009 = Strip(STRING009, " ")
  1121.             STRING011 = Strip(STRING011, " ")
  1122.             STRING010 = Strip(Strip(Strip(Strip(Strip(STRING010, " "), "-"), ","), "("), ")")
  1123.             FSeek 1, 37 + INTEGER003 * 59 - 57, 0
  1124.             If (TBOOLEAN003(1)) Then
  1125.                 FWrite 1, STRING009, 3
  1126.                 FWrite 1, STRING011, 4
  1127.                 FWrite 1, STRING010, 8
  1128.             Else
  1129.                 FWrite 1, STRING009, 3
  1130.                 FWrite 1, STRING011 + Space(1), 4
  1131.                 FWrite 1, STRING010 + Space(4), 8
  1132.             Endif
  1133.             INTEGER004 = S2I(STRING009, 10) + S2I(STRING011, 10) + S2I(STRING010, 10)
  1134.             FSeek 2, 37 + INTEGER003 * 8 - 4, 0
  1135.             FWrite 2, INTEGER004, 4
  1136.             BOOLEAN002 = 0
  1137.             BOOLEAN004 = 1
  1138.         Case "N"
  1139.             InputStr "Enter new name", STRING002, 10, 25, Mask_Ascii(), 2 + 4
  1140.             STRING002 = Upper(STRING002)
  1141.             FSeek 1, 37 + INTEGER003 * 59 - 42, 0
  1142.             FWrite 1, STRING002, 25
  1143.             BOOLEAN002 = 0
  1144.             BOOLEAN004 = 1
  1145.         Case "I"
  1146.             STRING005 = NoChar()
  1147.             InputYN "International Number", STRING005, 10
  1148.             If (Upper(STRING005) == Upper(YesChar())) Then
  1149.                 TBOOLEAN003(1) = 1
  1150.                 Goto LABEL029
  1151.             Endif
  1152.             TBOOLEAN003(1) = 0
  1153.             :LABEL029
  1154.             FSeek 1, 37 + INTEGER003 * 59 - 58, 0
  1155.             FWrite 1, TBOOLEAN003(1), 1
  1156.             BOOLEAN002 = 0
  1157.             BOOLEAN004 = 1
  1158.             STRING005 = ""
  1159.     End Select
  1160.     Goto LABEL028
  1161.     :LABEL030
  1162.     FClose 1
  1163.     FClose 2
  1164.     PrintLn 
  1165.     STRING005 = YesChar()
  1166.     InputYN "Reindex Used # Trash File", STRING005, 12
  1167.     Newline
  1168.     If (Upper(STRING005) == YesChar()) Gosub LABEL033
  1169.     Return
  1170.     :LABEL031
  1171.     PrintLn 
  1172.     PrintLn "@X0FEnter text to search for below (Searching name field)"
  1173.     InputText "", STRING006, 15, 75
  1174.     Newline
  1175.     PrintLn "@X0AInitializing search..."
  1176.     SearchInit STRING006, 0
  1177.     Print "@X0FSearching record #@X0B" + String(INTEGER003) + "@X0F of @X0B" + String(INTEGER002)
  1178.     INTEGER005 = INTEGER003
  1179.     INTEGER004 = INTEGER003
  1180.     FSeek 1, 37 + INTEGER003 * 59 - 59, 0
  1181.     While (INTEGER003 <= INTEGER002) Do
  1182.         FSeek 1, 17, 1
  1183.         FRead 1, STRING005, 25
  1184.         FSeek 1, 17, 1
  1185.         Backup Len(String(INTEGER002) + " of " + String(INTEGER004))
  1186.         Print "@X0B" + String(INTEGER003) + "@X0F of @X0B" + String(INTEGER002)
  1187.         SearchFind STRING005, BOOLEAN005
  1188.         If (BOOLEAN005 && (INTEGER003 <> INTEGER005)) Then
  1189.             PrintLn 
  1190.             PrintLn "@X0ASearch Criteria was found!  Now displaying..."
  1191.             SearchStop
  1192.             Return
  1193.         Else
  1194.             BOOLEAN005 = 0
  1195.         Endif
  1196.         INTEGER004 = INTEGER003
  1197.         Inc INTEGER003
  1198.     EndWhile
  1199.     If (BOOLEAN005) Goto LABEL032
  1200.     PrintLn 
  1201.     PrintLn "@X0CSearch criteria was not found...  Returning to record #" + String(INTEGER005)
  1202.     INTEGER003 = INTEGER005
  1203.     SearchStop
  1204.     :LABEL032
  1205.     Return
  1206.     :LABEL033
  1207.     Gosub LABEL035
  1208.     If (Exist(STRING001)) Goto LABEL034
  1209.     PrintLn 
  1210.     PrintLn "@X0CCreating sample " + STRING001
  1211.     FCreate 1, STRING001, 2, 2
  1212.     If (Ferr(1)) Then
  1213.         BOOLEAN001 = 1
  1214.     Else
  1215.         BOOLEAN001 = 0
  1216.     Endif
  1217.     If (BOOLEAN001) Then
  1218.         PrintLn 
  1219.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " X0Cfile is currently inaccessible..."
  1220.         FClose 1
  1221.         Return
  1222.     Endif
  1223.     FSeek 1, 0, 0
  1224.     FWrite 1, " EDSBack v1.21 Binary Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  1225.     FWrite 1, 0, 1
  1226.     FWrite 1, 0, 1
  1227.     FWrite 1, "000", 3
  1228.     FWrite 1, "000", 4
  1229.     FWrite 1, "0000", 8
  1230.     FWrite 1, "JOHN DOE", 25
  1231.     FWrite 1, Date(), 2
  1232.     FWrite 1, Time(), 4
  1233.     FWrite 1, Space(11), 11
  1234.     FClose 1
  1235.     :LABEL034
  1236.     INTEGER001 = FileInf(STRING001, 4)
  1237.     INTEGER002 = (INTEGER001 - 37) / 59
  1238.     FOpen 1, STRING001, 0, 0
  1239.     If (Ferr(1)) Then
  1240.         BOOLEAN001 = 1
  1241.     Else
  1242.         BOOLEAN001 = 0
  1243.     Endif
  1244.     If (BOOLEAN001) Then
  1245.         PrintLn 
  1246.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  1247.         FClose 1
  1248.         PrintLn 
  1249.         Return
  1250.     Endif
  1251.     FCreate 2, PPEPath() + "TRASH.IDX", 1, 3
  1252.     If (Ferr(2)) Then
  1253.         BOOLEAN001 = 1
  1254.     Else
  1255.         BOOLEAN001 = 0
  1256.     Endif
  1257.     If (BOOLEAN001) Then
  1258.         PrintLn 
  1259.         PrintLn "@X0CSorry, the @X0F" + PPEPath() + "TRASH.IDX @X0Cfile is currently inaccessible..."
  1260.         FClose 1
  1261.         FClose 2
  1262.         PrintLn 
  1263.         Return
  1264.     Endif
  1265.     FWrite 2, " EDSBack v1.21 Trash File Index " + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 37
  1266.     INTEGER003 = 1
  1267.     PrintLn 
  1268.     Print "Generating index file...     "
  1269.     If (OnLocal()) Then
  1270.         PrintLn 
  1271.         PrintLn 
  1272.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  1273.         BYTE001 = GetY()
  1274.     Endif
  1275.     FSeek 1, 37, 0
  1276.     While (INTEGER003 <= INTEGER002) Do
  1277.         FSeek 1, 2, 1
  1278.         FRead 1, STRING009, 3
  1279.         FRead 1, STRING011, 4
  1280.         FRead 1, STRING010, 8
  1281.         FSeek 1, 42, 1
  1282.         INTEGER004 = S2I(STRING009, 10) + S2I(STRING011, 10) + S2I(STRING010, 10)
  1283.         FWrite 2, INTEGER003, 4
  1284.         FWrite 2, INTEGER004, 4
  1285.         If (OnLocal()) Then
  1286.             Gosub LABEL038
  1287.         Else
  1288.             Gosub LABEL039
  1289.         Endif
  1290.         Inc INTEGER003
  1291.     EndWhile
  1292.     PrintLn 
  1293.     PrintLn "@X0AAlready used number file indexes successfully created!"
  1294.     Log "EDSBack used # trash index created...", 0
  1295.     FClose 1
  1296.     FClose 2
  1297.     Return
  1298.     :LABEL035
  1299.     STRING005 = PPEPath() + "EDSBACK.XXX"
  1300.     If (Exist(PPEPath() + "EDSBACK.XXX")) Then
  1301.         FOpen 2, STRING005, 0, 0
  1302.     Else
  1303.         PrintLn 
  1304.         PrintLn "@X0FPath & filename to EDSBack config file @X0E(Enter Below)"
  1305.         InputStr "", STRING005, 12, 75, Mask_Path() + Mask_File(), 2 + 4
  1306.         If (Exist(STRING005)) Goto LABEL036
  1307.         PrintLn 
  1308.         PrintLn "@X0C" + STRING005 + " DOES NOT EXIST!   @X0AReturning to EDSUtil Main..."
  1309.         Goto LABEL041
  1310.         Goto LABEL037
  1311.         :LABEL036
  1312.         FOpen 2, STRING005, 0, 0
  1313.     Endif
  1314.     :LABEL037
  1315.     If (Ferr(2)) Then
  1316.         BOOLEAN001 = 1
  1317.     Else
  1318.         BOOLEAN001 = 0
  1319.     Endif
  1320.     If (BOOLEAN001) Then
  1321.         PrintLn 
  1322.         PrintLn "@X0CSorry, the @X0F" + STRING005 + " @X0Cfile is currently inaccessible..."
  1323.         FClose 2
  1324.         Return
  1325.     Endif
  1326.     FSeek 2, 284, 0
  1327.     FRead 2, STRING001, 75
  1328.     FClose 2
  1329.     Return
  1330.     :LABEL038
  1331.     If (INTEGER003 == 1) BYTE006 = 0
  1332.     If ((INTEGER003 <> 0) && (INTEGER002 <> 0)) Then
  1333.         REAL002 = ToReal(INTEGER003) / ToReal(INTEGER002)
  1334.         REAL003 = FmtReal(ToReal(35) * REAL002, 1, 0)
  1335.         BYTE005 = ToByte(REAL003) - BYTE006
  1336.         If (BYTE005 <> BYTE006) Then
  1337.             Color 63
  1338.             AnsiPos 4 + BYTE006, BYTE001
  1339.             For BYTE006 = 1 To BYTE005
  1340.                 Print "░"
  1341.             Next
  1342.             BYTE006 = ToByte(REAL003)
  1343.             REAL002 = FmtReal(REAL002 * 100, 1, 0)
  1344.             BYTE005 = (43 - Len(String(REAL002) + "%")) / 2
  1345.             Color 11
  1346.             REAL003 = ToReal(BYTE001) - 1
  1347.             AnsiPos BYTE005, ToByte(REAL003)
  1348.             Print String(REAL002) + "%"
  1349.             AnsiPos 45, BYTE001
  1350.         Endif
  1351.     Endif
  1352.     Return
  1353.     :LABEL039
  1354.     If ((INTEGER003 <> 0) && (INTEGER002 <> 0)) Then
  1355.         If (INTEGER003 == 1) Then
  1356.             BYTE004 = 0
  1357.             Goto LABEL040
  1358.         Endif
  1359.         BYTE004 = REAL001
  1360.         :LABEL040
  1361.         REAL001 = ToReal(INTEGER003) / ToReal(INTEGER002)
  1362.         REAL001 = FmtReal(REAL001 * 100, 1, 0)
  1363.         If (BYTE004 <> REAL001) Then
  1364.             Backup Len(String(BYTE004) + "%")
  1365.             Print String(REAL001) + "%"
  1366.         Endif
  1367.     Endif
  1368.     Return
  1369.     :LABEL041
  1370.     End
  1371.  
  1372. ;------------------------------------------------------------------------------
  1373. ;
  1374. ; Usage report (before postprocessing)
  1375. ;
  1376. ; ■ Statements used :
  1377. ;
  1378. ;    1       End
  1379. ;    6       Cls
  1380. ;    1       Wait
  1381. ;    4       Color 
  1382. ;    257     Goto 
  1383. ;    227     Let 
  1384. ;    23      Print 
  1385. ;    198     PrintLn 
  1386. ;    153     If 
  1387. ;    1       DispFile 
  1388. ;    14      FCreate 
  1389. ;    13      FOpen 
  1390. ;    2       FAppend 
  1391. ;    59      FClose 
  1392. ;    1       FGet 
  1393. ;    27      FPutLn 
  1394. ;    5       Delete 
  1395. ;    5       Log 
  1396. ;    22      InputStr 
  1397. ;    5       InputYN 
  1398. ;    3       InputInt 
  1399. ;    2       InputDate 
  1400. ;    2       InputTime 
  1401. ;    30      Gosub 
  1402. ;    38      Return
  1403. ;    7       Delay 
  1404. ;    10      Inc 
  1405. ;    1       Dec 
  1406. ;    20      Newline
  1407. ;    2       GetToken 
  1408. ;    1       InputText 
  1409. ;    2       KbdChkOn
  1410. ;    2       KbdChkOff
  1411. ;    3       AnsiPos 
  1412. ;    3       Backup 
  1413. ;    5       Rename 
  1414. ;    33      FSeek 
  1415. ;    33      FRead 
  1416. ;    108     FWrite 
  1417. ;    1       FDefIn 
  1418. ;    1       FDefOut 
  1419. ;    1       FDRead 
  1420. ;    9       FDWrite 
  1421. ;    1       Copy 
  1422. ;    1       GetAltUser 
  1423. ;    1       SearchInit 
  1424. ;    1       SearchFind 
  1425. ;    2       SearchStop
  1426. ;
  1427. ;
  1428. ; ■ Functions used :
  1429. ;
  1430. ;    1       -
  1431. ;    12      *
  1432. ;    12      /
  1433. ;    282     +
  1434. ;    18      -
  1435. ;    39      ==
  1436. ;    8       <>
  1437. ;    5       <
  1438. ;    11      <=
  1439. ;    2       >
  1440. ;    4       >=
  1441. ;    144     !
  1442. ;    6       &&
  1443. ;    2       ||
  1444. ;    6       Len(
  1445. ;    19      Upper()
  1446. ;    12      Mid()
  1447. ;    2       Left()
  1448. ;    19      Space()
  1449. ;    24      Ferr()
  1450. ;    52      Chr()
  1451. ;    1       Asc()
  1452. ;    5       Trim()
  1453. ;    11      Date()
  1454. ;    11      Time()
  1455. ;    3       U_Name()
  1456. ;    2       NoChar()
  1457. ;    8       YesChar()
  1458. ;    40      Strip()
  1459. ;    45      String()
  1460. ;    12      Mask_Num()
  1461. ;    5       Mask_File()
  1462. ;    5       Mask_Path()
  1463. ;    3       Mask_Ascii()
  1464. ;    2       PCBDat()
  1465. ;    24      PPEPath()
  1466. ;    10      PcbNode()
  1467. ;    2       ReadLine()
  1468. ;    8       OnLocal()
  1469. ;    15      Exist()
  1470. ;    9       S2I()
  1471. ;    4       GetY()
  1472. ;    9       FileInf()
  1473. ;    3       ToByte()
  1474. ;    6       ToReal()
  1475. ;    3       FmtReal()
  1476. ;
  1477. ;------------------------------------------------------------------------------
  1478. ;
  1479. ; Analysis flags : Rd
  1480. ;
  1481. ; R - Read user ■ 5
  1482. ;     User records are read, this may signify that someone wants to get
  1483. ;     various informations about a user (for example his password), but
  1484. ;     this may also be normal for a program accessing user records (for
  1485. ;     example a User Editor)
  1486. ;     ■ Search for : GETALTUSER
  1487. ;
  1488. ; d - Access PCBOARD.DAT ■ 2
  1489. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  1490. ;     for many PPE so they can find various informations on the system
  1491. ;     (system paths, max number of lines in messages, ...) but it may also
  1492. ;     be a way to gather vital informations.
  1493. ;     ■ Search for : PCBDAT()
  1494. ;
  1495. ;------------------------------------------------------------------------------
  1496. ;
  1497. ; Postprocessing report
  1498. ;
  1499. ;    1       For/Next
  1500. ;    7       While/EndWhile
  1501. ;    95      If/Then or If/Then/Else
  1502. ;    3       Select Case
  1503. ;
  1504. ;------------------------------------------------------------------------------
  1505. ;                 AEGiS Corp - Break the routines, code against the machines!
  1506. ;------------------------------------------------------------------------------
  1507.